//package com.whyx.project.openapi.controller;
//
//
//import com.bootdo.common.utils.R;
//import com.whyx.project.openapi.util.JWTUtils;
//import com.whyx.project.openapi.util.StringCls;
//import com.whyx.project.user.service.RedisService;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.web.bind.annotation.ResponseBody;
//
//import javax.servlet.http.HttpServletRequest;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * @Auther: xin
// * @Date: 2018/10/22 13:50
// * @Description:
// */
//public class BaseController {
//
//    /**
//     * 入参空判断
//     * @param request
//     * @return
//     */
//    public @ResponseBody R parameterIsEmpty(HttpServletRequest request) {
//        Map<String, String> responseMap = new HashMap<>();
//        R r = new R();
//        String charset = request.getParameter("charset");
//        if (r.checkEmpty(charset)) {
//            return r.Empty("charset");
//        }
//        String format = request.getParameter("format");
//        if (r.checkEmpty(format)) {
//            return r.Empty("format");
//        }
//        String timestamp = request.getParameter("timestamp");
//        if (r.checkEmpty(timestamp)) {
//            return r.Empty("timestamp");
//        }
//        String version = request.getParameter("version");
//        if (r.checkEmpty(version)) {
//            return r.Empty("version");
//        }
//        String sign_type = request.getParameter("sign_type");
//        if (r.checkEmpty(sign_type)) {
//            return r.Empty("sign_type");
//        }
//        String sign = request.getParameter("sign");
//        if (r.checkEmpty(sign)) {
//            return r.Empty("sign");
//        }
//        String biz_data = request.getParameter("biz_data");
//        if (r.checkEmpty(biz_data)) {
//            return r.Empty("biz_data");
//        }
//        return r.ok();
//    }
//
//
//    public Boolean TokenIsInterface(HttpServletRequest request, RedisService redisService) throws Exception {
//        // 获取 url
//        String url = request.getRequestURL().toString();
//        // 获取 token
//        String token = request.getHeader("Authorization");
//        // 非空判断
//        if (!StringUtils.isNotBlank(token)) {
//            return false;
//        }
//        if (!StringCls.isEmpty(url) && !StringCls.isEmpty(token)) {
//            HashMap<String, String> map = JWTUtils.decryptToken(token);
//
//            String type = map.get("type");
//            String userUuid = map.get("userUuid");
////            String userKey = CheckUser.CHECK_REDIS_KEY + type + userUuid;
//
//            if (!JWTUtils.WX_PRO_TYPE.equals(type)) {
//
////                // 获取数据
////                CheckUser checkUser = JSON.parseObject((String) redisService.get(userKey), CheckUser.class);
////                if (checkUser != null) {
////                    // 不匹配直接返回 false
////                    if (!checkUser.getToken().equals(token)) {
////                        return false;
////                    }
//                    // 根据RedisKey 获取时效 自动刷新token
////                    Long expireTime = redisService.getExpireTime(userKey);
//                    // 小于 10 天就重新生成token 刷新操作
////                    if (expireTime < 864000L) {
////                        String timestamp = DateUtil.addMinute(new Date(), time).getTime() + "";
////                        String token1 = JWTUtils.getToken(userUuid, timestamp, type);
////
////                        checkUser.setToken(token1);
////                        String checkUserStr = JSON.toJSONString(CheckUser.getCheckUser());
////
////                        redisService.set(userKey, checkUserStr, CheckUser.KEY_OUT_TIME);
////                    }
//                } else {
//                    return false;
//                }
//            }
//
////            //验证token
////            Boolean verifyResponse = JWTUtils.verifyToken(map);
////            if (url.indexOf("/" + type + "/") != -1 && verifyResponse) {
////                // 将解析的userUuid存入消息头中
////                request.setAttribute("userUuid", userUuid);
////                return true;
////            } else if ("app2".equals(type)) {
////                // 将解析的userUuid存入消息头中
////                request.setAttribute("userUuid", userUuid);
////                return true;
////            }
////            return false;
////        }
//        return false;
//    }
//}
